package com.ctu.autodial.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONObject;

/**
 * 该类用于生成和解析json数据
 * 
 * @author wxm
 * 
 */
public class JsonUtil {
	/**
	 * 解析json
	 * 
	 * "linkid":"xxxx",//流水号 "mobile":"xxxx",//目标手机号 "cardpwd":"xxxx",//短信内容
	 * DES加密 8位密码 "resend":"xxx"//重试次数
	 * 
	 * @param data
	 * @return
	 * @throws Exception
	 */
	public static List<Map<String, Object>> parseJson(String data)
			throws Exception {
		List<Map<String, Object>> dataItem = new ArrayList<Map<String, Object>>();
		JSONArray jsonArr = new JSONArray(data); // 取出JSONArray
		for (int x = 0; x < jsonArr.length(); x++) { // 取出数组中的每一个JSONObject
			Map<String, Object> map = new HashMap<String, Object>(); // 保存每一组信息
			JSONObject jsonObj = jsonArr.getJSONObject(x); // 取得每一个JSONObject
			map.put("linkid", jsonObj.getInt("linkid")); // 流水号
			map.put("mobile", jsonObj.getString("mobile")); // 目标手机号
			map.put("cardpwd", jsonObj.getString("cardpwd")); // 卡密
			map.put("resend", jsonObj.getInt("resend")); // 重试次数
			dataItem.add(map); // 向集合中保存
		}
		return dataItem; // 返回全部记录
	}

	/**
	 * 解析json2
	 * 
	 * "data" 数组名
	 * 
	 * "linkid":"xxxx",//流水号
	 * 
	 * "mobile":"xxxx",//目标手机号
	 * 
	 * "cardpwd":"xxxx",//短信内容 DES加密 8位密码
	 * 
	 * "resend":"xxx"//重试次数
	 * 
	 * @param data
	 * @return
	 * @throws Exception
	 */
	public static Map<String, Object> parseJson2(String data) throws Exception {
		JSONObject allData = new JSONObject(data); // 定义JSONObject//
		Map<String, Object> dataItem = new HashMap<String, Object>();
		JSONArray jsonArr = allData.getJSONArray("data"); // 取出JSONArray
		List<Map<String, Object>> all = new ArrayList<Map<String, Object>>();
		for (int x = 0; x < jsonArr.length(); x++) { // 取出数组中的每一个JSONObject
			Map<String, Object> map = new HashMap<String, Object>(); // 保存每一组信息
			JSONObject jsonObj = jsonArr.getJSONObject(x); // 取得每一个JSONObject
			map.put("linkid", jsonObj.getInt("linkid")); // 流水号
			map.put("mobile", jsonObj.getString("mobile")); // 目标手机号
			map.put("cardpwd", jsonObj.getString("cardpwd")); // 卡密
			map.put("resend", jsonObj.getInt("resend")); // 重试次数
			all.add(map); // 向集合中保存
		}
		dataItem.put("data", all);
		return dataItem; // 返回全部记录
	}

	/**
	 * 生成json数据
	 */

}
